/*eslint-disable*/

/**★Mike Chen Builder★**/

/**数据计算类的功能*/
import {maxNum, minNum, sum, sumEx} from './ToolsCollection/Calculation';
/**数据检测类的功能*/
import {DataTypeDetect, emptyArrayDetect, emptyObjectDetect, notEmptyDetect} from './ToolsCollection/DataDetect';
/**数据查找类的功能*/
import {findMultiEqualString, findString, findStringEx} from './ToolsCollection/DataSearch';
/**数据转换输出类的功能*/
import {arrayRemoveDump, EraseMatchArrayItems} from './ToolsCollection/DataConvert';
/**随机生成类的功能*/
import {
    randomMacGenerator,
    randomSelectBoolean,
    randomStringMaker,
    randomStringMakerEx
} from './ToolsCollection/RandomDataGeneration';
/**系统处理类的功能*/
import {
    clientBaseInfo,
    FileDataReader,
    FileDataWrite,
    getCusFmtTimeDate,
    getCustomFormatTimeDate,
    getFileNameExtName,
    getFileOnDirectoryLocation,
    getFullPathFileOrDirectoryName,
    portRange,
    sleep_Async,
    sleep_Nsync,
    SpecialReservedCharacterDetect
} from './ToolsCollection/SystemProcess';
/**服务处理类的功能*/
import {AJAX_RequestProcess, FormRequester, oldAJAX_RequestProcess} from './ToolsCollection/ServerProcess'

/**General Tools Collection Package Kit，通用工具集合套件包，NodeJS前端版*/
class GeneralToolsCollectionPackageKit {
    arrayRemoveDump = arrayRemoveDump;
    AJAX_RequestProcess = AJAX_RequestProcess;
    clientBaseInfo = clientBaseInfo;
    DataTypeDetect = DataTypeDetect;
    emptyObjectDetect = emptyObjectDetect;
    emptyArrayDetect = emptyArrayDetect;
    EraseMatchArrayItems = EraseMatchArrayItems;
    findString = findString;
    findStringEx = findStringEx;
    findMultiEqualString = findMultiEqualString;
    FileDataReader = FileDataReader;
    FileDataWrite = FileDataWrite;
    FormRequester = FormRequester;
    getCusFmtTimeDate = getCusFmtTimeDate;
    getCustomFormatTimeDate = getCustomFormatTimeDate;
    getFullPathFileOrDirectoryName = getFullPathFileOrDirectoryName;
    getFileNameExtName = getFileNameExtName;
    getFileOnDirectoryLocation = getFileOnDirectoryLocation;
    maxNum = maxNum;
    minNum = minNum;
    notEmptyDetect = notEmptyDetect;
    oldAJAX_RequestProcess = oldAJAX_RequestProcess;
    portRange = portRange;
    randomStringMaker = randomStringMaker;
    randomStringMakerEx = randomStringMakerEx;
    randomSelectBoolean = randomSelectBoolean;
    randomMacGenerator = randomMacGenerator;
    sleep = {sleep_Async, sleep_Nsync};
    SpecialReservedCharacterDetect = SpecialReservedCharacterDetect;
    sum = sum;
    sumEx = sumEx;

    /**深拷贝实例函数*/
    DeepCopyInstance = function (InstanceSource) {
        try {
            let Origin1 = JSON.stringify(InstanceSource);
            let Origin2 = JSON.parse(Origin1);
            return Origin2;
        } catch (e) {
            return InstanceSource;
        }
    };

    /**@deprecated
     * 浅拷贝函数*/
    lightCopy = function (NeedCopySources) {
        return NeedCopySources;
    };
}

export {
    GeneralToolsCollectionPackageKit,
    AJAX_RequestProcess,
    EraseMatchArrayItems,
    clientBaseInfo,
    FileDataReader,
    FileDataWrite,
    FormRequester,
    findMultiEqualString,
    findString,
    findStringEx,
    maxNum,
    minNum,
    notEmptyDetect,
    portRange,
    randomMacGenerator,
    randomSelectBoolean,
    randomStringMaker,
    randomStringMakerEx,
    sum,
    sumEx,
    sleep_Async,
    sleep_Nsync,
};